﻿/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  看门狗模块  
  Function List:   
     SYS_WtdStart()
         |
         |
        \ /
    SYS_WtdFeed()/SYS_WtdReset()/SYS_WtdGetRemainTime()
         |
         |
        \ / 
    SYS_WtdStop()
    
*******************************************************************************/
#ifndef SYS_WTD_H 
#define SYS_WTD_H 

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/


/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/

/*******************************************************************************
  Function:     SYS_WtdStart
  Description:  开启开门狗
  Input:        -timeout，看门狗超时时间,单位s
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdStart(int timeout);


/*******************************************************************************
  Function:     SYS_WtdFeed
  Description:  喂狗
  Input:        无
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdFeed(void);


/*******************************************************************************
  Function:     SYS_WtdReset
  Description:  重新设置看门狗超时时间
  Input:        -timeout，看门狗超时时间,单位s
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdReset(int timeout);


/*******************************************************************************
  Function:     SYS_WtdGetRemainTime
  Description:  获取看门狗超时时间的剩余时间
  Input:        无
  Output:       - pRemainTime: 剩余时间,单位s
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdGetRemainTime(int *pRemainTime);


/*******************************************************************************
  Function:     SYS_WtdStop
  Description:  停止看门狗
  Input:        无
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdStop(void);

/*******************************************************************************
  Function:     SYS_WtdSwitch
  Description:  设置看门狗操作使能开关
  Input:        - enable: 操作使能开关
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/
int SYS_WtdSwitch(int enable);

#ifdef __cplusplus
}
#endif
#endif // SYS_WTD_H
